﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Drawing.Drawing2D;


namespace HOOMT
{
    class HighOrderState 
    {
        /*public HighOrderState(Point point, int width = 100, int height = 40)
            : base(point, width, height)
        {

        }*/

       public  void Drawing(Graphics g, StateTransitionModelForm m)
       {
           Pen pen = new Pen(Color.Black, 1);
           Rectangle rect = new Rectangle();
           DrawRoundRectangle( g,  pen, rect, 10);
       }
        //+++++++++++++++++++++画圆角矩形
       public static void DrawRoundRectangle(Graphics g, Pen pen, Rectangle rect, int cornerRadius)
       {
           using (GraphicsPath path = CreateRoundedRectanglePath(rect, cornerRadius))
           {
               g.DrawPath(pen, path);
           }
       }
       public static void FillRoundRectangle(Graphics g, Brush brush, Rectangle rect, int cornerRadius)
       {
           using (GraphicsPath Path = CreateRoundedRectanglePath(rect, cornerRadius))
           {
               g.FillPath(brush, Path);
           }
       }
       internal static GraphicsPath CreateRoundedRectanglePath(Rectangle rect, int cornerRadius)
       {
           GraphicsPath roundedRect = new GraphicsPath();
           roundedRect.AddArc(rect.X, rect.Y, cornerRadius * 2, cornerRadius * 2, 180, 90);
           roundedRect.AddLine(rect.X + cornerRadius, rect.Y, rect.Right - cornerRadius * 2, rect.Y);
           roundedRect.AddArc(rect.X + rect.Width - cornerRadius * 2, rect.Y, cornerRadius * 2, cornerRadius * 2, 270, 90);
           roundedRect.AddLine(rect.Right, rect.Y + cornerRadius * 2, rect.Right, rect.Y + rect.Height - cornerRadius * 2);
           roundedRect.AddArc(rect.X + rect.Width - cornerRadius * 2, rect.Y + rect.Height - cornerRadius * 2, cornerRadius * 2, cornerRadius * 2, 0, 90);
           roundedRect.AddLine(rect.Right - cornerRadius * 2, rect.Bottom, rect.X + cornerRadius * 2, rect.Bottom);
           roundedRect.AddArc(rect.X, rect.Bottom - cornerRadius * 2, cornerRadius * 2, cornerRadius * 2, 90, 90);
           roundedRect.AddLine(rect.X, rect.Bottom - cornerRadius * 2, rect.X, rect.Y + cornerRadius * 2);
           roundedRect.CloseFigure();
           return roundedRect;
       } 
        //++++++++++
    }
}
